
#ifndef _CONFIG_H
#define _CONFIG_H

#define TESTOS_KERNEL_CODE_SELECTOR 0x08 // see CODE_SEG in asm
#define TESTOS_KERNEL_DATA_SELECTOR 0x10 // see DATA_SEG in asm

#define TESTOS_HEAP_SIZE_BYTES 104857600 // = 25600 entries (100 MByte heap size)
#define TESTOS_HEAP_BLOCK_SIZE 4096
#define TESTOS_HEAP_ADDRESS 0x01000000
#define TESTOS_HEAP_TABLE_ADDRESS 0x00007E00

#define TESTOS_TOTAL_INTERRUPTS 512

#define TESTOS_SECTOR_SIZE 512

#define TESTOS_MAX_PATH_SIZE 108

#define TESTOS_MAX_FILESYSTEMS_AMOUNT 12
#define TESTOS_MAX_FILE_DESCRIPTORS_AMOUNT 512

#define TESTOS_TOTAL_GDT_SEGMENTS 6

#define TESTOS_PROGRAM_VIRTUAL_ADDRESS 0x400000
#define TESTOS_PROGRAM_VIRTUAL_ADDRESS_STACK_START 0x3FF000
#define TESTOS_USER_PROGRAM_STACK_SIZE 1024 * 16
#define TESTOS_PROGRAM_VIRTUAL_STACK_ADDRESS_END TESTOS_PROGRAM_VIRTUAL_ADDRESS_STACK_START - TESTOS_USER_PROGRAM_STACK_SIZE

#define TESTOS_USER_DATA_SEGMENT 0x23
#define TESTOS_USER_CODE_SEGMENT 0x1B

#define TESTOS_MAX_PROCESS_ALLOCATIONS 1024
#define TESTOS_MAX_PROCESSES 16

#define TESTOS_MAX_ISR80H_COMMANDS 1024

#define TESTOS_KEYBOARD_BUFFER_SIZE 1024

#endif 